package com.itmuch.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.stereotype.Component;

/*
 * Feign使用fallbackFactory属性打印fallback的异常
 * 	  1.创建一个类HystrixClientFactory继承FallbackFactory，泛型为接口，
 *     此接口添加注解fallbackFactory=HystrixClientFactory.class
 *    2.fallbackFactory可以说是fallback的增强版，可以拦截到异常，fallback没法获取到异常，
 *    	两个不能同时出现，会发生异常，
 *    3.创建一个接口UserFeignClientWithFactory继承使用注解的接口UsedrFeignClient
 *    4.当user服务提供者没关闭，会执行HystrixClientFallback这个方法
 *    5.当user服务提供者关闭，会执行HystrixClientFactory这个方法 、、 ...异常的方法
 *    
 * */

@EnableEurekaClient
@SpringBootApplication
@EnableFeignClients
public class ConsumeFeignwithHystrixApplication {
	public static void main(String[] args) {
		SpringApplication.run(ConsumeFeignwithHystrixApplication.class, args);
	}
}
